3. 环境与控制 Environments & Controls
以下面这段代码片段为例进行讲解:
from opoerator import mul
def square(x):
return mul(x,x)
square(square(3))
当执行这段代码时,我们会得到三个帧与三个环境:
/Pasted%20image%2020250225200911.png)
当我们对内层的 square(3) 求值时,实际发生了如下的过程:
- 将
绑定到形参 上 - 执行函数体,发现需要返回表达式
mul(x,x)的值。 - 对表达式的运算符与操作数求值,操作数
与值 的绑定位于当前帧 f2内;而运算符mul的在f2内无法查找到对应的值,向该环境下f2帧的父亲全局帧查询,查找到mul绑定到函数func mul()。对参数应用函数,得到结果,将其作为该表达式的值返回。
总的来说,语句(Statement) 即由解释器执行并进行一些操作的的命令。跨越多行的语句被称为复合语句,结构如下:
<标头>:
<语句>
...
<分隔标头>:
<语句>
...
一个标头,连带所有缩进的语句为一个从句,缩进的语句则为该从句的主体。
编写程序时,难免出现错误。Python 中的错误(Errors) 一般有三种形式:
- 语法错误(Syntax Errors),解释器执行程序前即可检测到。
- 运行时错误(Runtime Errors),解释器执行程序时会检测到,并给出 调用栈。
- 逻辑或行为错误(Logical or Behavioral Errors),解释器无法检测到。